The Trivial File Transfer Protocol (TFTP) is a simple file transfer protocol that is widely used. TFTP can be used by a first TFTP agent (also referred to here as a “TFTP client”) to write a file to a second TFTP agent (also referred to here as a “TFTP server”). TFTP can also be used by a TFTP client to read a file from a TFTP server. The details of TFTP are defined in various Internet Engineering Task Force (IETF) Request for Comments (RFC) documents, including RFC 783 (TFTP Protocol (revision 1)), RFC 1350 (TFTP Protocol (revision 2)), RFC 906 (Bootstrap loading using TFTP), RFC 1785 (TFTP Option Negotiation Analysis), RFC 2347 (TFTP Option Extension), RFC 2348 (TFTP Blocksize Option), and RFC 2349 (TFTP Timeout Interval and Transfer Size Options). The TFTP described in such IETF RFC documents is also referred to here as “standard TFTP.”
Although the various IETF RFC documents that define standard TFTP do not place a limit on the size of file that can be transferred using standard TFTP, buffers used in actual TFTP implementations typically limit the size of file that can be transferred using such TFTP implementations. If a file is too large for a buffer in either the TFTP client or TFTP server, the file typically cannot be transferred using standard TFTP. Also, standard TFTP only provides a means to request a file by file name. That is, standard TFTP assumes that some sort of file system is used on the TFTP server and TFTP client. As a result, standard TFTP by itself is typically not used in applications where large files need to be transferred or where data that is not stored in a file system needs to be transferred.
One such application is the cross loading of data from one flight management computer (FMC) to another. As used herein, “cross loading” refers to copying all or part of the data residing in the memory of one FMC to the memory of another FMC. The data residing in the memory of an FMC is also referred to here as a “memory image.” Some avionics standards, such as Aeronautical Radio, Incorporated (ARINC) Standard 615A, specify that standard TFTP can be used for loading data from a file stored in a file system into the memory of a target device. This type of transfer is also referred to here as “data loading.” Unlike with data loading, standard TFTP typically cannot be used to cross load a memory image (or a part thereof) from the memory of one FMC to the memory of another FMC since a file system is not used to manage the data stored within the memory of the FMCs. Also, because modern flight management computers use large amounts of memory (for example, one or more gigabytes), the size of the resulting memory images typically exceed the size of the buffers used in the TFTP software that is otherwise used for data loading.